iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
Odoo

30天就算 0 基礎,也能使用 GenAI 創造簡單的 Odoo 模組應用系列 第 29

【Day29】回顧 GenAI 創造及擴充圖書館模組的過程及反思

  • 分享至 

  • xImage
  •  

如果歸納下來,使用 GenAI 開發 Odoo 模組最重要的就是 Odoo 架構知識,理解模組的組成,藉由回顧前四天的 GenAI 操作,來一窺當你擁有前面所述及去年鐵人賽的知識後,你該怎麼運用 GenAI 來完成簡單的模組。

2024 鐵人賽 - 30天就算 0 基礎,也能使用 GenAI 創造簡單的 Odoo 模組應用 系列
2023 鐵人賽 - Odoo 魔法學院: 一步一腳印帶你成為客製化大師 系列

回顧從 【Day25~28】的 GenAI 歷程

Day25: 用 GenAI 重做去年鐵人賽 Odoo 圖書館系統

重現去年鐵人賽的 Day10 文章,我很清楚描述了,我們要做的模組資訊及 Model 的 Fields,GenAI 很快就產生整個專案,有趣的是,我們並沒有指名忍何 View 的樣式,但 GenAI 有給我們,及基本的 Access Rule 權限。

Day26: 使用 GenAI 補上圖書館模組的缺陷:以實例來實驗 GenAI 環境下的策略

經過測試,我們馬上發現了幾個問題,沒 init.py,沒 Menu,沒 Security Group,但這幾點是測試完後,經由我所擁有的 Odoo 架構知識Python 基礎知識 才知道的。

在 GenAI 的時代下,如果是不知道 What 的問題,依舊是很難去解決,但是只要知道問題,就可以用 GenAI 很快去解決。

題外話,將這個程式完成後,你依然有可能會卡在找不到模組的窘境,此時依然是只能依靠 Odoo 開發經驗,你除了得正確載入模組以外,還得更新模組列表,並且安裝啟動,且要去啟動開發者模式,將本身的使用者啟動 Library Management User 的權限,回首頁後,重新整理才看得到模組。

Day27: GenAI 擴充原有功能:ISBN 驗證 和 預設搜尋選項

接續去年鐵人賽的 Day11 擴充功能,新增檢查 ISBN 的功能,和加入預設搜尋選項,知道要做什麼,其實就完成一大半了。

這次在提問 GenAI 時,你會注意到我特地把之前的 Model 和 View 的程式碼當作前言,接著再開始我的問題,這會是個很重要的一步,在做擴充時,是要延續原有的架構及程式,架上新有的功能,並不是憑空在創造一個新模組,但 Knowhow 點就在於,你到底該把那些當作前言呢? 丟多了,怕 GenAI 會錯意,丟少了,怕 GenAI 產生出不相容的擴充,所以 Odoo 架構知識 是必不可少的。

這次我的提問,你會發現我開始很明確地跟 GenAI 說道我要新增的按鈕會在哪個頁面,以及該按鈕的功能是什麼 (檢查 ISBN 是否合法),產生的結果就更容易預期的,但你會發現有些是否沒必要出現的字 "請用繁體中文",沒錯有時 GenAI 會使用英文回答,這段提問我大概修修改改問了四次,你猜得到是什麼嗎?

沒錯,就是 ISBN 合法,怎樣所合法呢? 數字數目 10 或 13 個是合法? 符合國際編碼標準是合法? 的確,兩個都符合 "合法" 的範疇,這也是我重跑了一兩次的原因,當然,如果跑了幾次都還失敗,我就會補充新的提問上去了。

所以真正好的提問敘述是應該要把,這個功能的邏輯也敘述一下,input/ argument 是什麼,output/ return 是什麼,會造就什麼樣的結果,當然,如果你都敘述完後,那變相的你也像是在腦袋中構思完這個程式該怎麼寫了。

Day28: 修復 GenAI 的幻覺 及 調整 Form View 上按鈕的位置

很尷尬的是,程式又出錯了,此時透過錯誤訊息,我們可以很快推斷,是 <group> <filter> 那段出問題了,雖然 Odoo 只會指出是某一片大區域解析出問題,還是透過我人工去測試才得知的,你說我有沒有用 AI,可能是經驗使然,我知道這邊使用他去找問題,並不會比較快,反而是透過我快速的註解掉覺得有問題的部分會比較快一些。

但確認問題後,直接跟 GenAI 指名是哪邊出問題了,對方很快就將其修復了,此時出的問題是 Odoo 的版本不同,View 有做過一些變動,這在 Day23 Odoo List View 也有提及另一個例子,Odoo 17 和 Odoo 18 的 List View 標籤有做變動,所以 GenAI 確實有機會會用到不同版本的 Odoo 知識來產生結果,經過一番嘗試後,如果無果,你就只能回歸古早做法,從文件慢慢地去查及驗證了。

再來是按鈕的位置,由於前一天我也沒有特別標明,所以跟去年寫的就不太一樣,放到 Footer 去了,但也是一個示例的好機會,用 GenAI 很明確地指出 View 的哪一段,改到 Header 去,就很快的完成了。

這也會是很常發生的例子,往往一開始沒指名清楚,功能確認了,但位置可能會修改,抑或是功能修改,透過 GenAI 確實是可以很快做修改,但你得要擷取適當的資訊,才會更容易得到可以運行的結果。


上一篇
【Day28】修復 GenAI 的幻覺 及 調整 Form View 上按鈕的位置
下一篇
【Day30】系列文章:0 基礎,也能使用 GenAI 創造簡單的 Odoo 模組應用
系列文
30天就算 0 基礎,也能使用 GenAI 創造簡單的 Odoo 模組應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言